package Test;

import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

//现在有两个List集合存储队伍当中的多个成员姓名，要求使用Stream流的方式依次进行以下若干操作步骤：
//
//第一个队伍：{"tom", "kobe", "jordan", "tracy","westbook","yaoming","ace","stephen"}
//
//第二个队伍：{"beyonce", "jay_z", "adele", "taylor","bieber","ladygaga"}
//
//1：第一个队伍只要名字长度大于4的前三名
//
//2：第二个队伍只要名字中带有a的;筛选后不要第一个
//
//3：将两个队伍合并为一个队伍,并最终转换为List集合
//
//4：将最终的队伍中的名字按照名字的字母降序排列（非自然顺序，与自然排序相反，如zyx...cba）
//
//5：使用foreach进行遍历打印最终的名字
public class Test_2 {
    public static void main(String[] args) {
        Stream<String> stream1 = Stream.of("tom", "kobe", "jordan", "tracy", "westbook", "yaoming", "ace", "stephen").filter((s) -> {
            if (s.length() > 4) {
                return true;
            } else {
                return false;
            }
        }).limit(3);
        Stream<String> stream2 = Stream.of("beyonce", "jay_z", "adele", "taylor", "bieber", "ladygaga").filter((s) -> {
            if (s.contains("a")) {
                return true;
            } else {
                return false;
            }

        }).skip(1);
        Stream<String> concat = Stream.concat(stream1, stream2);
        List<String> collect = concat.collect(Collectors.toList());
        Collections.sort(collect,(s1,s2)->{
            char[] chars = s1.toCharArray();
            char[] chars1 = s2.toCharArray();
            return chars1[0]-chars[0];
        });
        System.out.println(collect);
        Stream<String> stream = collect.stream();
        stream.forEach(s-> System.out.println(s));



    }
}
